/*
提交链接:https://leetcode.cn/problems/find-if-path-exists-in-graph/description/
1971. 寻找图中是否存在路径
赖德檀 2024/10/7
*/


class Solution {
private:
    int* par;  //创建一个指针
public:
    void Solut(int n)
    {
        par=new int[n];
//动态内存分配来指向一块连续的整数数组所在的内存区域，使指针指向它
        for(int i=0;i<n;i++)
        par[i]=i;
    }

    int find(int x)  //查
    {
        if(par[x]!=x)
        par[x]=find(par[x]);
        return par[x];
    }

    void pair(int a,int b)//并
    {
        par[find(a)]=find(b);
    }  

    bool validPath(int n, vector<vector<int>>& edges, int source, int destination) {
        Solut(n);
        for(int i=0;i<edges.size();i++)
        {
            pair(edges[i][0],edges[i][1]);
        }
        return find(source)==find(destination);
    }
};


